Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.net] aggiungere testo in una determinata riga
Forum - C# / VB.NET - [VB.net] aggiungere testo in una determinata riga

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Salve a tutti,

questo è il mio problema...ho un file di testo di 3 righe:

Piero
Tofy
.it

vorrei che diventasse così:

Piero
Tofy
Forum
.it

Su internet purtroppo non sono riuscito a trovare niente di interessante :( mi potete aiutare? Grazie in anticipo

PM Quote
Avatar
tullio1995 (Normal User)
Rookie


Messaggi: 59
Iscritto: 20/03/2011

Segnala al moderatore
Postato alle 14:56
Martedì, 18/06/2013
Prova a usare un file temporaneo dove appoggiarti, copi il file fino e dove devi inserire la stringa, inserisci la stringa, e poi continui a copiare. Poi rinomini e cancelli il vecchio file

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:11
Martedì, 18/06/2013
non esiste un metodo più semplice?

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 22:16
Martedì, 18/06/2013
Io farei così (non l'ho provato):
Codice sorgente - presumibilmente VB.NET

  1. Dim s As String = My.Computer.FileSystem.ReadAllText("miofile.txt") 'carico il file in una variabile
  2. Dim lines() As String = s.Split(Environment.NewLine) 'ottengo l'array delle righe
  3. Dim c As Integer = 0 'punto dove devi iniziare a scrivere
  4. For i As Integer = 0 To RigaDoveVuoiScrivere 'faccio passare le righe dalla prima a quella dove vuoi scrivere
  5.     c += lines(i).Length + 1 'per ognuna sommo il numero di caratteri della riga + 1 che è il ritorno a capo
  6. Next
  7. s.Insert(c, "TestoCheVuoiScrivere" & Environment.NewLine) 'inserisco il testo e un ritorno a capo
  8. My.Computer.FileSystem.WriteAllText("miofile.txt", s, False) 'salvo nel file


PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:26
Martedì, 18/06/2013
Testo quotato

Postato originariamente da GN:

Io farei così (non l'ho provato):
Codice sorgente - presumibilmente VB.NET

  1. Dim s As String = My.Computer.FileSystem.ReadAllText("miofile.txt") 'carico il file in una variabile
  2. Dim lines() As String = s.Split(Environment.NewLine) 'ottengo l'array delle righe
  3. Dim c As Integer = 0 'punto dove devi iniziare a scrivere
  4. For i As Integer = 0 To RigaDoveVuoiScrivere 'faccio passare le righe dalla prima a quella dove vuoi scrivere
  5.     c += lines(i).Length + 1 'per ognuna sommo il numero di caratteri della riga + 1 che è il ritorno a capo
  6. Next
  7. s.Insert(c, "TestoCheVuoiScrivere" & Environment.NewLine) 'inserisco il testo e un ritorno a capo
  8. My.Computer.FileSystem.WriteAllText("miofile.txt", s, False) 'salvo nel file




per prima cosa ti ringrazio....adesso il codice l'ho provato però mi salva un altro file testo senza la riga che voglio aggiungere

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 21:32
Mercoledì, 19/06/2013
Ops ho sbagliato una cosa, invece che
Codice sorgente - presumibilmente Plain Text

  1. s.Insert(c, "TestoCheVuoiScrivere" & Environment.NewLine)


bisogna mettere
Codice sorgente - presumibilmente Plain Text

  1. s = s.Insert(c, "TestoCheVuoiScrivere" & Environment.NewLine)


Così dovrebbe funzionare.

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2308
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 11:30
Giovedì, 20/06/2013
Codice sorgente - presumibilmente VB.NET

  1. Public Sub Aggiungi_linea(filename As String, linea As Integer, testo As String)
  2.  
  3.  
  4.         Dim rtb As New RichTextBox()
  5.         'RichTextBox Provvisorio
  6.         rtb.LoadFile(filename, RichTextBoxStreamType.PlainText)
  7.  
  8.         rtb.Text.Insert(linea, testo)
  9.  
  10.         Dim rtb2 As New RichTextBox()
  11.  
  12.         For i As Integer = 0 To rtb.Lines.Length - 1
  13.                 If i = linea Then
  14.                         rtb2.AppendText(testo & vbLf)
  15.                 End If
  16.  
  17.                 rtb2.AppendText(rtb.Lines(i) + vbLf)
  18.         Next
  19.  
  20.         rtb2.SaveFile(filename, RichTextBoxStreamType.PlainText)
  21. End Sub


Funzione che aggiunge  una linea ad un file esistente. Ovviamente specificando il numero della riga.

Ultima modifica effettuata da Thejuster il 20/06/2013 alle 11:30


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:24
Giovedì, 20/06/2013
grazie, adesso ho risolto :)

PM Quote